Skip to content

Migrate monorepo tooling to Vite+#3503

Open
anymaniax wants to merge 27 commits into
masterfrom
feature/setup-vite-plus
Open

Migrate monorepo tooling to Vite+#3503
anymaniax wants to merge 27 commits into
masterfrom
feature/setup-vite-plus

Conversation

@anymaniax
Copy link
Copy Markdown
Collaborator

@anymaniax anymaniax commented Jun 1, 2026

Migrate monorepo tooling to Vite+

Replaces the project's build/task/lint/format stack (turbo + tsdown + ESLint + Prettier + lint-staged) with the unified Vite+ (vp) toolchain. Also resolves #3216 (debug-friendly builds without leaking source into published packages).

Why

One zero-config toolchain (vp pack, vp run, oxlint, oxfmt, vp staged) instead of five separate tools — faster builds with input/output-fingerprinted caching, native workspace-graph task ordering, and Rust-based lint/format. Removes the per-package build/config boilerplate.

What changed

Build: tsdownvp pack

Task runner: turbovp run

  • Deleted turbo.json. Tasks (build, typecheck, test, dev, clean, nuke) are defined once in vite.config.base.ts with caching and cross-package ordering derived from the workspace dependency graph.
  • clean/nuke are now shared tasks instead of being duplicated in all 13 package manifests; root clean:all/nuke:all use vp run filters.

Lint & format: ESLint + Prettier → oxlint + oxfmt

  • Deleted eslint.config.ts and .prettierignore; added .oxlintrc.json and .oxfmtrc.json.
  • Root vite.config.ts wires fmt / lint / staged.

Pre-commit: lint-staged + Prettier → vp staged + oxfmt

  • Deleted .lintstagedrc.json, dropped the lint-staged dependency.
  • Added a staged block to vite.config.ts; root package.json is now "type": "module" so vp can load the TS config.

Misc

  • .vscode/ updated to oxc (oxc.oxc-vscode formatter, source.fixAll.oxc, Vite+ extension pack; ESLint/Prettier disabled).
  • Requires Node ≥ 24 (devEngines).

Publish safety

Verified the published artifacts are behavior-equivalent to the previous tsdown build: catalog:/workspace:* resolve to concrete versions via bun publish, no src/ leaks into tarballs, and exports/types/bin are unchanged — no consumer-breaking regression.

Summary by CodeRabbit

  • Chores

    • Migrated build tooling and dev workflows to Vite+ (vp) across repo, CI and release flows
    • Simplified package exports to use built outputs (removed conditional development exports)
    • Consolidated dev tooling (trimmed legacy linters/formatters) and updated npm scripts in samples to use vp
    • Replaced monorepo orchestration (turbo/configs) with new vite-plus config base
  • Documentation

    • Updated READMEs, CONTRIBUTING and sample docs/commands to reflect vp-based workflow

Copilot AI review requested due to automatic review settings June 1, 2026 08:36
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 1, 2026

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Migrates the monorepo from Turbo/tsdown/Prettier/ESLint to vite-plus/OXC, adds a shared vite-plus package helper, standardizes published package exports to dist-only, and switches workspace/samples/CI/git hooks to use vp commands.

Changes

Build system and package export standardization

Layer / File(s) Summary
Root build config, editor settings, and removed tooling
vite.config.ts, package.json, .vscode/settings.json, .vscode/extensions.json
Adds vite.config.ts with embedded fmt/lint/staged config via vite-plus; converts root package.json to ESM with vp scripts; configures OXC in VS Code; removes legacy turbo.json, .prettierignore, .lintstagedrc.json, .release-it.ts, and related configs.
GitHub Actions workflows and Git hooks
.github/workflows/*, .husky/*
Replaces Node/Bun setup with voidzero-dev/setup-vp and rewires workflow steps to vp install/vp run; updates Husky hooks to call vp run commands.
Shared vite-plus package configuration helper
packages/vite.config.base.ts
Adds definePackage(pack?) helper that returns a vite-plus defineConfig with standardized pack preset (node22.18/ESM, tsconfig.build.json, DTS sourcemaps) and package run.tasks for build/typecheck/test/watch/clean/nuke.
Package exports standardization and per-package Vite configs
packages/*/package.json, packages/*/vite.config.ts, packages/orval/src/utils/options.ts
Simplifies package exports to dist-only ./dist/index.mjs, removes per-package scripts and publishConfig, drops per-package tsdown.config.ts, trims devDependencies (removes eslint/tsdown, adds vite-plus), adds per-package vite.config.ts using definePackage; retains hono copy rule and minor code cleanup in normalizeMcpOptions.
Sample apps, tests, and documentation script updates
samples/*/package.json, tests/package.json, README.md, CONTRIBUTING.md, DEBUGGING.md, samples/README.md, packages/query/DEVELOPMENT.md, sample READMEs
Updates sample generate-api scripts to vp exec orval, switches snapshot/check scripts from bun run/vitest to vp run, and updates docs to reference vp workflows.

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested labels

breaking change

Suggested reviewers

  • melloware
  • snebjorn

"🧑‍🌾🐰
I hopped through configs, tidy and spry,
Replaced old tools with a new vp sky.
One helper to pack, one command to run,
Dist-only exports — the migration is done!
Hooray for builds that now hop and fly."

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title 'Migrate monorepo tooling to Vite+' clearly and concisely describes the main change: replacing the entire tooling stack (turbo, tsdown, ESLint, Prettier, lint-staged) with Vite+.
Linked Issues check ✅ Passed The PR fully addresses issue #3216 by eliminating the problematic 'development' export condition. It replaces tsdown (which auto-generated 'development': './src/index.ts') with vp pack, which generates bundled, dist-only exports that do not leak source files, directly resolving the root cause.
Out of Scope Changes check ✅ Passed All changes are in-scope: migrating the monorepo build/task/lint/format tooling from turbo/tsdown/ESLint/Prettier/lint-staged to Vite+. Documentation updates, package.json script updates, and VS Code configuration changes all support this migration and are not extraneous.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/setup-vite-plus

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@anymaniax anymaniax requested review from melloware and snebjorn June 1, 2026 08:36
@socket-security
Copy link
Copy Markdown

socket-security Bot commented Jun 1, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedvite-plus@​0.1.2281100100100100

View full report

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@package.json`:
- Around line 30-31: The cleanup scripts clean:all and nuke:all currently use a
single-level glob '-F './samples/*'' which misses nested sample workspaces;
update both script entries to use a recursive glob like '-F './samples/**'' (or
equivalent recursive pattern supported by the tool) so nested paths such as
samples/hono/hono-with-zod and samples/mcp/custom-server are included when
running vp run and rimraf.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e9289208-9e66-4531-8acf-3637f01b8687

📥 Commits

Reviewing files that changed from the base of the PR and between 9f8c350 and ce28582.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (87)
  • .lintstagedrc.json
  • .oxfmtrc.json
  • .oxlintrc.json
  • .prettierignore
  • .vscode/extensions.json
  • .vscode/settings.json
  • eslint.config.ts
  • package.json
  • packages/angular/package.json
  • packages/angular/tsdown.config.ts
  • packages/angular/vite.config.ts
  • packages/axios/package.json
  • packages/axios/tsdown.config.ts
  • packages/axios/vite.config.ts
  • packages/core/package.json
  • packages/core/src/getters/params.ts
  • packages/core/tsdown.config.ts
  • packages/core/vite.config.ts
  • packages/effect/package.json
  • packages/effect/tsdown.config.ts
  • packages/effect/vite.config.ts
  • packages/fetch/package.json
  • packages/fetch/tsdown.config.ts
  • packages/fetch/vite.config.ts
  • packages/hono/package.json
  • packages/hono/tsdown.config.ts
  • packages/hono/vite.config.ts
  • packages/mcp/package.json
  • packages/mcp/tsdown.config.ts
  • packages/mcp/vite.config.ts
  • packages/mock/package.json
  • packages/mock/tsdown.config.ts
  • packages/mock/vite.config.ts
  • packages/orval/package.json
  • packages/orval/src/utils/options.ts
  • packages/orval/tsdown.config.ts
  • packages/orval/vite.config.ts
  • packages/query/package.json
  • packages/query/tsdown.config.ts
  • packages/query/vite.config.ts
  • packages/solid-start/package.json
  • packages/solid-start/tsdown.config.ts
  • packages/solid-start/vite.config.ts
  • packages/swr/package.json
  • packages/swr/tsdown.config.ts
  • packages/swr/vite.config.ts
  • packages/tsdown.base.ts
  • packages/vite.config.base.ts
  • packages/zod/package.json
  • packages/zod/tsdown.config.ts
  • packages/zod/vite.config.ts
  • samples/angular-app/package.json
  • samples/angular-query/package.json
  • samples/basic/package.json
  • samples/dynamic-ref/package.json
  • samples/hono/composite-routes-with-tags-split/package.json
  • samples/hono/hono-with-fetch-client/package.json
  • samples/hono/hono-with-zod/package.json
  • samples/mcp/custom-server/package.json
  • samples/mcp/petstore/package.json
  • samples/next-app-with-fetch/package.json
  • samples/paginated-response/package.json
  • samples/react-app-with-swr/basic/package.json
  • samples/react-app-with-swr/fetch-client/package.json
  • samples/react-app/package.json
  • samples/react-query/basic/package.json
  • samples/react-query/custom-fetch/package.json
  • samples/react-query/form-data-mutator/package.json
  • samples/react-query/form-data/package.json
  • samples/react-query/form-url-encoded-mutator/package.json
  • samples/react-query/form-url-encoded/package.json
  • samples/react-query/hook-mutator-axios/package.json
  • samples/react-query/hook-mutator-fetch/package.json
  • samples/solid-query/basic/package.json
  • samples/solid-query/custom-fetch/package.json
  • samples/solid-start/basic/package.json
  • samples/svelte-query/basic/package.json
  • samples/svelte-query/custom-fetch/package.json
  • samples/svelte-query/v6-custom-fetch/package.json
  • samples/swr-with-effect/package.json
  • samples/swr-with-zod/package.json
  • samples/vue-query/custom-fetch/package.json
  • samples/vue-query/vue-query-basic/package.json
  • scripts/link-workspace-bins.mjs
  • tsconfig.base.json
  • turbo.json
  • vite.config.ts
💤 Files with no reviewable changes (20)
  • packages/effect/tsdown.config.ts
  • .prettierignore
  • scripts/link-workspace-bins.mjs
  • packages/angular/tsdown.config.ts
  • packages/tsdown.base.ts
  • packages/mcp/tsdown.config.ts
  • packages/orval/tsdown.config.ts
  • packages/axios/tsdown.config.ts
  • packages/hono/tsdown.config.ts
  • packages/swr/tsdown.config.ts
  • packages/solid-start/tsdown.config.ts
  • packages/query/tsdown.config.ts
  • packages/fetch/tsdown.config.ts
  • tsconfig.base.json
  • packages/core/tsdown.config.ts
  • packages/mock/tsdown.config.ts
  • .lintstagedrc.json
  • packages/zod/tsdown.config.ts
  • turbo.json
  • eslint.config.ts

Comment thread package.json Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 86 out of 87 changed files in this pull request and generated 3 comments.

Comment thread packages/vite.config.base.ts
Comment thread packages/vite.config.base.ts Outdated
Comment thread vite.config.ts
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 86 out of 87 changed files in this pull request and generated 1 comment.

Comment thread package.json Outdated
@melloware
Copy link
Copy Markdown
Collaborator

this is pretty awesome @anymaniax !

Comment thread package.json
@melloware melloware added this to the 8.15.0 milestone Jun 1, 2026
@anymaniax anymaniax requested a review from Copilot June 1, 2026 11:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 86 out of 87 changed files in this pull request and generated no new comments.

@melloware
Copy link
Copy Markdown
Collaborator

@anymaniax does this resolve this issue too? #2544

@melloware melloware added the enhancement New feature or request label Jun 1, 2026
@melloware melloware modified the milestones: 8.15.0, 8.16.0 Jun 1, 2026
Copy link
Copy Markdown
Contributor

@snebjorn snebjorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did a quick pass, seems there's still a lot of bun run around

vp install runs bun install which was surprising :)

I didn't get around to testing debugging. But noticed it seems to be expected that users run vp run dev to get the good debug build. IMO vp run build should be for debugging and have a special task for publish build

The github action should probably also be updated https://viteplus.dev/guide/ci

Comment thread vite.config.ts Outdated

export default defineConfig({
fmt: fmtConfig as OxfmtConfig,
lint: lintConfig as OxlintConfig,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vp docs have

export default defineConfig({
  lint: {
    options: {
      typeAware: true,
      typeCheck: true,
    },
  },
});

I'm not seeing typeAware or typeCheck. They seem releavnt

I added the below and it passed vp lint

var _a: number = '';

I was expecting something like

Type 'string' is not assignable to type 'number'

and/or

'_a' is declared but its value is never read

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice catch did the change to add it

Comment thread bun.lock
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vp uses pnpm by default. Shouldn't we follow?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when I do vp install I got bun on my computer on my side. It detect the one we use normally and otherwise I prefer bun too personally I dont know the other

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It detect the one that's configured in package.json :)
Given the various issues we've had with bun I'd go with pnpm. But we can defer that to another PR :)

Comment thread samples/README.md
Comment thread packages/vite.config.base.ts Outdated
cache: true,
dependsOn: ['build'],
},
dev: {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vp uses vp dev to start the Vite development server.
https://viteplus.dev/guide/dev

perhaps we should find another name to avoid confusion

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the packages I dont think we will use the vp dev command to start the vite dev server anyway but we could change the command you have idea? watch ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

watch seems good :)

Comment thread packages/vite.config.base.ts
Comment thread package.json Outdated
Comment thread .vscode/settings.json Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/pr-checks.yaml (1)

16-24: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix Node mismatch in pr-checks (22.x vs devEngines.runtime >=24)

packages/orval declares a Node runtime requirement via root package.json devEngines.runtime (node >=24, onFail: "error"), but .github/workflows/pr-checks.yaml sets matrix.node-version: [22.x] for voidzero-dev/setup-vp@v1. This can make vp install/subsequent checks run under an unsupported Node version and diverge from the release workflows that use Node 24.

Proposed change
       matrix:
         os: [ubuntu-latest, windows-latest]
-        node-version: [22.x]
+        node-version: [24.x]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/pr-checks.yaml around lines 16 - 24, The workflow sets
matrix.node-version to 22.x which conflicts with packages/orval's root
package.json devEngines.runtime (node >=24); update the pr-checks workflow
matrix.node-version to use Node 24 (e.g., "24.x") so the Setup Vite+ step (uses:
voidzero-dev/setup-vp@v1) and subsequent vp install checks run on a supported
Node runtime consistent with devEngines.runtime.
🧹 Nitpick comments (2)
samples/angular-app/package.json (1)

15-16: 💤 Low value

Stale .turbo cleanup target.

With Turbo removed in this migration, .turbo is no longer produced. The rimraf .turbo ... references are harmless (rimraf no-ops on missing paths) but now misleading; consider dropping .turbo from clean/nuke. (This same pattern likely exists across the other sample package.json files in this PR.)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@samples/angular-app/package.json` around lines 15 - 16, Remove the obsolete
".turbo" target from the npm scripts named "clean" and "nuke" (they currently
contain "rimraf .turbo ..."); update those script strings to stop referencing
".turbo" and keep the remaining cleanup paths intact, and run a quick grep
across other sample package.json files to remove any other ".turbo" occurrences
in similar "clean"/"nuke" scripts.
.github/workflows/pr-checks.yaml (1)

21-22: ⚡ Quick win

Consider pinning the new third-party action to a commit SHA.

voidzero-dev/setup-vp@v1 is a newly introduced third-party action and is flagged by zizmor as unpinned. For a less-established action, pinning to a full commit SHA (with the tag in a trailing comment) reduces supply-chain risk from a moved/compromised tag. The first-party actions/* tags follow the existing repo convention, so this is primarily about the new external dependency.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/pr-checks.yaml around lines 21 - 22, Replace the floating
tag reference to the third-party action by pinning it to a specific commit SHA:
change the usage of voidzero-dev/setup-vp@v1 to
voidzero-dev/setup-vp@<commit-sha> and keep the human-readable tag as a trailing
comment (e.g., /* `@v1` */) so the workflow uses an immutable SHA while preserving
the tag for clarity; update the workflow step that references
voidzero-dev/setup-vp@v1 to use the commit SHA.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release-publish.yaml:
- Around line 22-26: The publish workflow step using the voidzero-dev/setup-vp
action (the "Setup Vite+" step) currently enables caching via `cache: true`,
which can allow cache poisoning in this privileged publish job; change that
`cache` setting to `false` (or remove the `cache` input entirely) so the publish
run builds from a fresh environment and cannot restore a potentially tainted
dependency/build cache.

In @.github/workflows/snapshot-version-check.yaml:
- Line 67: The printed remediation hint in snapshot-version-check.yaml is
misleading: update the echo string that currently suggests "vp run
test:snapshots:update" to match the actual CI invocation "vp run -w
test:snapshots:update" so contributors run the workspace-scoped command; locate
the echo line in the snapshot-version-check.yaml workflow and replace the
command text accordingly (ensure the message uses "vp run -w
test:snapshots:update").

In `@samples/hono/hono-with-fetch-client/README.md`:
- Around line 15-19: Add the language identifier "bash" to the fenced code block
in the README to satisfy MD040 and reduce markdown-lint noise; locate the
triple-backtick block that contains the commands "cd next-app", "bun install",
and "vp run dev" and change the opening fence from ``` to ```bash so the block
is explicitly marked as a bash shell snippet.

---

Outside diff comments:
In @.github/workflows/pr-checks.yaml:
- Around line 16-24: The workflow sets matrix.node-version to 22.x which
conflicts with packages/orval's root package.json devEngines.runtime (node
>=24); update the pr-checks workflow matrix.node-version to use Node 24 (e.g.,
"24.x") so the Setup Vite+ step (uses: voidzero-dev/setup-vp@v1) and subsequent
vp install checks run on a supported Node runtime consistent with
devEngines.runtime.

---

Nitpick comments:
In @.github/workflows/pr-checks.yaml:
- Around line 21-22: Replace the floating tag reference to the third-party
action by pinning it to a specific commit SHA: change the usage of
voidzero-dev/setup-vp@v1 to voidzero-dev/setup-vp@<commit-sha> and keep the
human-readable tag as a trailing comment (e.g., /* `@v1` */) so the workflow uses
an immutable SHA while preserving the tag for clarity; update the workflow step
that references voidzero-dev/setup-vp@v1 to use the commit SHA.

In `@samples/angular-app/package.json`:
- Around line 15-16: Remove the obsolete ".turbo" target from the npm scripts
named "clean" and "nuke" (they currently contain "rimraf .turbo ..."); update
those script strings to stop referencing ".turbo" and keep the remaining cleanup
paths intact, and run a quick grep across other sample package.json files to
remove any other ".turbo" occurrences in similar "clean"/"nuke" scripts.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a47453f2-17f5-4c40-8e1e-a05feeb12b2c

📥 Commits

Reviewing files that changed from the base of the PR and between 13c2a8e and 86a0834.

📒 Files selected for processing (45)
  • .github/workflows/pr-checks.yaml
  • .github/workflows/release-prepare.yaml
  • .github/workflows/release-publish.yaml
  • .github/workflows/snapshot-version-check.yaml
  • .husky/commit-msg
  • .husky/pre-commit
  • CONTRIBUTING.md
  • DEBUGGING.md
  • README.md
  • package.json
  • packages/hono/package.json
  • packages/query/DEVELOPMENT.md
  • samples/README.md
  • samples/angular-app/package.json
  • samples/angular-query/package.json
  • samples/basic/package.json
  • samples/dynamic-ref/package.json
  • samples/hono/composite-routes-with-tags-split/README.md
  • samples/hono/composite-routes-with-tags-split/package.json
  • samples/hono/hono-with-fetch-client/README.md
  • samples/hono/hono-with-fetch-client/package.json
  • samples/hono/hono-with-zod/package.json
  • samples/mcp/custom-server/package.json
  • samples/mcp/petstore/package.json
  • samples/next-app-with-fetch/package.json
  • samples/paginated-response/package.json
  • samples/react-app-with-swr/basic/package.json
  • samples/react-app-with-swr/fetch-client/package.json
  • samples/react-app/package.json
  • samples/react-query/basic/package.json
  • samples/react-query/custom-fetch/package.json
  • samples/react-query/form-data-mutator/package.json
  • samples/react-query/form-data/package.json
  • samples/react-query/form-url-encoded-mutator/package.json
  • samples/react-query/form-url-encoded/package.json
  • samples/react-query/hook-mutator-axios/package.json
  • samples/react-query/hook-mutator-fetch/package.json
  • samples/svelte-query/basic/package.json
  • samples/svelte-query/custom-fetch/package.json
  • samples/svelte-query/v6-custom-fetch/package.json
  • samples/swr-with-effect/package.json
  • samples/swr-with-zod/package.json
  • samples/vue-query/custom-fetch/package.json
  • samples/vue-query/vue-query-basic/package.json
  • tests/package.json
✅ Files skipped from review due to trivial changes (4)
  • CONTRIBUTING.md
  • samples/react-query/form-url-encoded/package.json
  • samples/paginated-response/package.json
  • README.md
🚧 Files skipped from review as they are similar to previous changes (19)
  • samples/react-query/hook-mutator-fetch/package.json
  • samples/swr-with-zod/package.json
  • samples/svelte-query/v6-custom-fetch/package.json
  • samples/README.md
  • samples/hono/composite-routes-with-tags-split/package.json
  • samples/svelte-query/custom-fetch/package.json
  • samples/react-app-with-swr/basic/package.json
  • samples/react-query/hook-mutator-axios/package.json
  • samples/react-query/form-data-mutator/package.json
  • samples/vue-query/custom-fetch/package.json
  • samples/react-app-with-swr/fetch-client/package.json
  • samples/angular-query/package.json
  • samples/react-query/custom-fetch/package.json
  • samples/react-query/form-url-encoded-mutator/package.json
  • DEBUGGING.md
  • samples/mcp/custom-server/package.json
  • samples/next-app-with-fetch/package.json
  • samples/react-query/basic/package.json
  • package.json

Comment thread .github/workflows/release-publish.yaml Outdated
Comment thread .github/workflows/snapshot-version-check.yaml Outdated
Comment thread samples/hono/hono-with-fetch-client/README.md Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/pr-checks.yaml (1)

16-24: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

CI Node version conflicts with the raised devEngines requirement.

The matrix pins node-version: [22.x] and feeds it to setup-vp, but package.json now declares devEngines.runtime.version: ">=24" with "onFail": "error". If vp install honors devEngines, the install step will fail on the 22.x runners; at minimum the two are contradictory after this migration. Bump the CI matrix to satisfy >=24.

🔧 Proposed fix
-        node-version: [22.x]
+        node-version: [24.x]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/pr-checks.yaml around lines 16 - 24, The CI matrix
currently pins matrix.node-version to 22.x which contradicts the package.json
devEngines.runtime.version ">=24" and will cause vp install (setup-vp) to fail;
update the matrix.node-version entries to a version satisfying ">=24" (e.g.,
24.x and/or 26.x), so the Setup Vite+ step that uses voidzero-dev/setup-vp@v1
with input node-version: ${{ matrix.node-version }} runs on compatible Node
versions and no longer conflicts with devEngines.runtime.version.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@vite.config.ts`:
- Around line 19-31: The ignorePatterns array in vite.config.ts currently
contains the literal 'samples', which causes vp fmt --write samples (the
package.json "format:samples" script) to be filtered out and do nothing; remove
'samples' from the ignorePatterns (or alternatively change the "format:samples"
script to target a path not matched by ignorePatterns) so that vp fmt --write
samples actually formats the samples directory; update the ignorePatterns symbol
in vite.config.ts accordingly and keep the package.json "format:samples" script
as-is if you choose removal.

---

Outside diff comments:
In @.github/workflows/pr-checks.yaml:
- Around line 16-24: The CI matrix currently pins matrix.node-version to 22.x
which contradicts the package.json devEngines.runtime.version ">=24" and will
cause vp install (setup-vp) to fail; update the matrix.node-version entries to a
version satisfying ">=24" (e.g., 24.x and/or 26.x), so the Setup Vite+ step that
uses voidzero-dev/setup-vp@v1 with input node-version: ${{ matrix.node-version
}} runs on compatible Node versions and no longer conflicts with
devEngines.runtime.version.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fd3b1d86-fc00-46dd-a751-28d9262d867c

📥 Commits

Reviewing files that changed from the base of the PR and between 86a0834 and c08dcab.

📒 Files selected for processing (3)
  • .github/workflows/pr-checks.yaml
  • package.json
  • vite.config.ts

Comment thread vite.config.ts
melloware
melloware previously approved these changes Jun 2, 2026
Copy link
Copy Markdown
Contributor

@snebjorn snebjorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tested:

  • vp run build
  • vp run lint
  • vp run test
  • vp run test:snapshots
  • vp run update-samples
    • first time I ran it it locked the terminal - not sure what's going
  • debugging DX

Comment thread .github/workflows/pr-checks.yaml Outdated
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [22.x]
node-version: [24.x]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

orval support node version is 22.18. I think we should keep the 22.x version to make sure it still works

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment thread samples/README.md

```
```bash
bun install
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vp install

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

```
```bash
cd hono-app
bun install
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vp install

found it a few places, probably just do a search and replace

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment thread package.json Outdated
"format:staged": "vp staged",
"format:samples": "vp fmt --write samples",
"postinstall": "bun scripts/link-workspace-bins.mjs",
"prepare": "husky",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need husky anymore. Vite+ has it built-in
https://viteplus.dev/guide/commit-hooks

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didnt know done

Comment thread package.json Outdated
"postinstall": "bun scripts/link-workspace-bins.mjs",
"prepare": "husky",
"commitlint": "commitlint",
"update-samples": "vp run -F './packages/*' build && vp run -F './samples' -F orval-tests generate-api",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed this error when running

$ vp run update-samples
VITE+ - The Unified Toolchain for the Web

No packages matched the filter: ./samples
...omitted

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

did some adaptation but maybe like the comment before do you have the last version of vp?

Copy link
Copy Markdown
Contributor

@snebjorn snebjorn Jun 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have this

$ vp --version
VITE+ - The Unified Toolchain for the Web

vp v0.1.24

Local vite-plus:
  vite-plus  v0.1.22

Tools:
  vite             v8.0.11
  rolldown         v1.0.0
  vitest           v4.1.6
  oxfmt            v0.48.0
  oxlint           v1.63.0
  oxlint-tsgolint  v0.22.1
  tsdown           v0.22.0

Environment:
  Package manager  bun v1.3.12
  Node.js          v24.16.0 (devEngines.runtime)

I actually have a newer version of bun

$ bun --version
1.3.14

I tried running nuke:all to reset things, but got this

$ vp run nuke:all
VITE+ - The Unified Toolchain for the Web

~/packages/core$ rimraf dist node_modules ⊘ cache disabled
Error: EPERM: operation not permitted, unlink 'omitted\orval\packages\core\node_modules\.bin\rimraf.exe'
    at async unlink (node:internal/fs/promises:1070:10)
    at async file:///omitted/orval/node_modules/.bun/rimraf@6.1.2/node_modules/rimraf/dist/esm/fix-eperm.js:14:26
    at async method (file:///omitted/orval/node_modules/.bun/rimraf@6.1.2/node_modules/rimraf/dist/esm/retry-busy.js:16:24)
    at async rimrafWindowsDir (file:///omitted/orval/node_modules/.bun/rimraf@6.1.2/node_modules/rimraf/dist/esm/rimraf-windows.js:87:9)
    at async Promise.all (index 14)
    at async rimrafWindowsDir (file:///omitted/orval/node_modules/.bun/rimraf@6.1.2/node_modules/rimraf/dist/esm/rimraf-windows.js:91:25)
    at async Promise.all (index 0)
    at async rimrafWindowsDir (file:///omitted/orval/node_modules/.bun/rimraf@6.1.2/node_modules/rimraf/dist/esm/rimraf-windows.js:91:25)
    at async rimrafWindows (file:///omitted/orval/node_modules/.bun/rimraf@6.1.2/node_modules/rimraf/dist/esm/rimraf-windows.js:61:14)
    at async Promise.all (index 1) {
  errno: -4048,
  code: 'EPERM',
  syscall: 'unlink',
  path: 'omitted\\orval\\packages\\core\\node_modules\\.bin\\rimraf.exe'
}

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don’t have the last version locally can you try to upgrade and retry? You are on windows ?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In fact when doing vp --version I have the same as you and if I do vp upgrade I am updated so I dont know why you have this and not me

Copy link
Copy Markdown
Contributor

@snebjorn snebjorn Jun 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think local means it's the one that installed in the project.

package.json has "vite-plus": "0.1.22", which lines up with

Local vite-plus:
  vite-plus  v0.1.22

and yes I'm on windows

"test:snapshots:update": "vp run test:snapshots --update",
"lint": "ng lint",
"generate-api": "orval",
"generate-api": "vp exec orval",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

$ vp run generate-api
VITE+ - The Unified Toolchain for the Web

error: Failed to load task graph

  • Failed to load task config file for package at "omitted\orval\packages/angular"
  • data did not match any variant of untagged enum UserCacheConfig

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you have the last version of viteplus? because cannot reproduce this

Comment thread .prettierignore Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(packaging): published packages expose "development" export condition pointing to missing src/ files (v8.6.0+)

4 participants